package package05章_数组.Array1;

import java.util.Scanner;

/**
 * ClassName: e_5_2ArrayExec1
 * Package: package05章_数组.Array1
 * Description:
 *
 * @Author lys
 * @Create 2023/12/17 15:40
 * @Version 1.0
 */
public class d_5_2ArrayExec {
    public static void main(String[] args) {


//        e_5_2ArrayExec.exec1();
//        System.out.println("==================");
//        e_5_2ArrayExec.exec2();
//        System.out.println("==================");

        d_5_2ArrayExec.exec3();
        System.out.println("==================");
    }

    static void exec1() {
/**
 * 案例："破解"房东电话
 *
 * 升景坊单间短期出租4个月，550元/月（水电煤公摊，网费35元/月），空调、卫生间、厨房齐全。屋内均是IT行业人士，喜欢安静。
 * 所以要求来租者最好是同行或者刚毕业的年轻人，爱干净、安静。
 *
 */
        int[] arr = new int[]{8, 2, 1, 0, 3};
        int[] index = new int[]{2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3};

        String tel = "";

        for (int i = 0; i < index.length; i++) {
            int value = index[i];
            tel += arr[value];
        }
        System.out.println("联系方式：" + tel); //18013820100


    }


    static void exec2() {
        /**
         * ClassName: ArrayExer02
         * Description:案例
         *
         * 案例：输出英文星期几
         *
         * 用一个数组，保存星期一到星期天的7个英语单词，从键盘输入1-7，显示对应的单词
         * {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}
         *
         * @Author
         * @Create 10:36
         * @Version 1.0
         */
        //定义包含7个单词的数组
        String[] weeks = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

        //从键盘获取指定的数值，使用Scanner
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入数值（1-7）：");
        int day = scan.nextInt();


        //针对获取的数据进行判断即可
        if (day < 1 || day > 7) {
            System.out.println("你输入的数据有误。");
        } else {
            System.out.println(weeks[day - 1]);
        }
        scan.close();
    }


    static void exec3() {
    /*
案例：学生考试等级划分

从键盘读入学生成绩，找出最高分，并输出学生成绩等级。
	成绩>=最高分-10    等级为’A’
	成绩>=最高分-20    等级为’B’
	成绩>=最高分-30    等级为’C’
	其余              等级为’D’

提示：先读入学生人数，根据人数创建int数组，存放学生成绩。*/
        //1. 从键盘输入学生的人数，根据人数，创建数组(动态初始化)
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入学生人数：");

        int count = scan.nextInt();

        int[] scores = new int[count];

        //2. 根据提示，依次输入学生成绩，并将成绩保存在数组元素中
        int maxScore = scores[0];
        System.out.println("请输入" + count + "个成绩");

        for (int i = 0; i < scores.length; i++) {
            scores[i] = scan.nextInt();
            //3. 获取学生成绩的最大值
            if (maxScore < scores[i]) {
                maxScore = scores[i];
            }
        }

        System.out.println("最高分是：" + maxScore);

        //4. 遍历数组元素，根据学生成绩与最高分的差值，得到每个学生的等级，并输出成绩和等级
        char grade;
        for (int i = 0; i < scores.length; i++) {

            if (scores[i] >= maxScore - 10) {
                grade = 'A';
            } else if (scores[i] >= maxScore - 20) {
                grade = 'B';
            } else if (scores[i] >= maxScore - 30) {
                grade = 'C';
            } else {
                grade = 'D';
            }

            System.out.println("student " + i + " score is " + scores[i] +
                    " grade is " + grade);
        }

        scan.close();


    }
}
